home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / Ant Movie Catalog 3.5.0.2 / amc_install.exe / {app} / Scripts / berserkme (FR).ifs < prev    next >
Text File  |  2005-03-13  |  11KB  |  289 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=berserkme
  8. Title=berserkme
  9. Description=berserkme (FR) descriptif et image
  10. Site=http://www.berserkme.com
  11. Language=FR
  12. Version=
  13. Requires=3.5.0
  14. Comments= basΘ sur le code de cinefil   (Danone kid)
  15. License=This program is free software; you can redistribute it and/or modify it under the  terms of the GNU General Public License as published by the Free Software Foundation;  either version 2 of the License, or (at your option) any later version. |
  16. GetInfo=1
  17.  
  18. [Options]
  19.  
  20. ***************************************************)
  21.  
  22. program berserkme;
  23. var
  24.   MovieName: string;
  25.  
  26. procedure AnalyzePage(Address: string);
  27. var
  28.   Page: TStringList;
  29.   LineNr: Integer;
  30.   Line,page_film,titre_film, realisateur_film, annee_film: string;
  31.   BeginPos, EndPos: Integer;
  32.   begin
  33.   //vide la liste des films
  34.   PickTreeClear;
  35.   //charge la page
  36.   Line := GetPage(Address);
  37.   //teste si il y a des films trouvΘs
  38.   BeginPos := Pos('Aucun film trouv', Line);
  39.   if BeginPos <> 0 then
  40.   begin
  41.     showmessage('Aucun film trouvΘ !');
  42.     exit;
  43.   end;
  44.   //teste si il n'y a pas qu'un seul film
  45.   //  BeginPos := Pos('FILMS TROUV╔S', Line);
  46.   //  if BeginPos = 0 then
  47.   //  begin
  48.   // AnalysePageFilm(Address);
  49.    // exit;
  50.   // end;
  51.   //supprime tout le code avant la liste des films
  52.   // BeginPos := Pos('<B>ANN╔E</B>', Line);
  53.   // Delete(Line, 1, BeginPos-1);
  54.   repeat
  55.   //cherche le lien de la page du film
  56.   BeginPos := Pos('<a href="details.asp?ref=',Line);
  57.   Delete(Line, 1, BeginPos+8);
  58.   EndPos := Pos('">',Line);
  59.   page_film := 'http://www.berserkme.com/amc/' + Copy(Line, 1, EndPos-1 );
  60.   //cherche le nom du film
  61.   BeginPos := Pos('">',Line);
  62.   Delete(Line, 1, BeginPos+1);
  63.   EndPos := Pos('</a><br>',Line)-1;
  64.   titre_film := Copy(Line, 1, EndPos );
  65.   HTMLdecode(titre_film);
  66.   HTMLremovetags(titre_film);
  67.   titre_film := StringReplace(titre_film, #13#10, '');
  68.   titre_film := StringReplace(titre_film, '   ', '');
  69.   titre_film := Trim(titre_film);
  70.   titre_film := AnsiLowerCase(titre_film);
  71.   titre_film := AnsiUpFirstLetter(titre_film);
  72.  
  73.   //ajoute les films
  74.     PickTreeAdd(titre_film , page_film);
  75.   //cherche le lien de la page du film
  76.     BeginPos := Pos('href="details.asp?ref=',Line);
  77.   until BeginPos = 0;
  78.   begin
  79.     if PickTreeExec(Address)=true then
  80.     AnalysePageFilm(Address);
  81.   end;
  82. end;
  83. //------------------------------------------------------------------------------
  84. // ANALYSE DE LA PAGE DU FILM
  85. //------------------------------------------------------------------------------
  86. procedure AnalysePageFilm(Address: string);
  87. var
  88.   Line,page_film,titre_film,titre_original, categorie_film, realisateur_film, annee_film: string;
  89.   pays_film, duree_film, acteurs_film, liste_acteurs, description_film, reference_film,public_film,video_film,audio_film,fichier_image:string;
  90.   BeginPos, EndPos: Integer;
  91. begin
  92.   //charge la page
  93.   Line := GetPage(Address);
  94.   //cherche le nom du film
  95.   BeginPos := Pos('titre:', Line);
  96.   Delete(Line, 1, BeginPos+5);
  97.   EndPos := Pos('<br>',Line)-1;
  98.   titre_film := Copy(Line, 1, EndPos );
  99.   HTMLdecode(titre_film);
  100.   titre_film := StringReplace(titre_film, #13#10, '');
  101.   titre_film := StringReplace(titre_film, '   ', '');
  102.   titre_film := Trim(titre_film);
  103.   titre_film := AnsiLowerCase(titre_film);
  104.   titre_film := AnsiMixedCase(titre_film, ' ');
  105.   titre_film := AnsiMixedCase(titre_film, '-');
  106.  
  107.   //cherche la description
  108.   BeginPos := Pos('descriptif', Line);
  109.   Delete(Line, 1, BeginPos+12);
  110.   EndPos := Pos('<br>',Line)-1;
  111.   description_film := Copy(Line, 1, EndPos );
  112.   HTMLdecode(description_film);
  113.   description_film := StringReplace(description_film, #13#10, '');
  114.   description_film := StringReplace(description_film, '   ', '');
  115.  
  116.   //cherche le titre original
  117.   //BeginPos := Pos('Titre Original : "', Line);
  118.   //Delete(Line, 1, BeginPos+17);
  119.   //EndPos := Pos('"</FONT>',Line)-1;
  120.   //titre_original := Copy(Line, 1, EndPos );
  121.   //HTMLdecode(titre_original);
  122.   //titre_original := StringReplace(titre_original, #13#10, '');
  123.   //titre_original := StringReplace(titre_original, '   ', '');
  124.   //titre_original := Trim(titre_original);
  125.   //titre_original := AnsiLowerCase(titre_original);
  126.   //titre_original := AnsiMixedCase(titre_original, ' ');
  127.   //titre_original := AnsiMixedCase(titre_original, '-');
  128.  
  129.   //cherche l'annΘe
  130.   BeginPos := Pos('annΘe:', Line);
  131.   Delete(Line, 1, BeginPos+6);
  132.   EndPos := Pos('<br>',Line)-1;
  133.   annee_film := Copy(Line, 1, EndPos );
  134.   HTMLdecode(annee_film);
  135.   annee_film := StringReplace(annee_film, #13#10, '');
  136.   annee_film := StringReplace(annee_film, '   ', '');
  137.   annee_film := Trim(annee_film);
  138.  
  139.   //cherche le pays
  140.   BeginPos := Pos('pays:', Line);
  141.   Delete(Line, 1, BeginPos+6);
  142.   EndPos := Pos('<br>',Line)-1;
  143.   pays_film := Copy(Line, 1, EndPos );
  144.   HTMLdecode(pays_film);
  145.   pays_film := StringReplace(pays_film, #13#10, '');
  146.   pays_film := StringReplace(pays_film, '   ', '');
  147.   pays_film := Trim(pays_film);
  148.   HTMLremovetags(pays_film);
  149.   pays_film := AnsiLowerCase(pays_film);
  150.   pays_film := AnsiMixedCase(pays_film, ' ');
  151.   pays_film := AnsiMixedCase(pays_film, '-');
  152.  
  153.   //cherche la catΘgorie
  154.   BeginPos := Pos('genre:', Line);
  155.   Delete(Line, 1, BeginPos+7);
  156.   EndPos := Pos('<br>',Line)-1;
  157.   categorie_film := Copy(Line, 1, EndPos );
  158.   HTMLdecode(categorie_film);
  159.   categorie_film := StringReplace(categorie_film, #13#10, '');
  160.   categorie_film := StringReplace(categorie_film, '   ', '');
  161.   categorie_film := Trim(categorie_film);
  162.   categorie_film := AnsiLowerCase(categorie_film);
  163.   categorie_film := AnsiMixedCase(categorie_film, ' ');
  164.   categorie_film := AnsiMixedCase(categorie_film, '-');
  165.  
  166.     //cherche le rΘalisateur
  167.   BeginPos := Pos('rΘalisateur:', Line);
  168.   Delete(Line, 1, BeginPos+12);
  169.   EndPos := Pos('<br>',Line)-1;
  170.   realisateur_film := Copy(Line, 1, EndPos );
  171.   HTMLdecode(realisateur_film);
  172.   realisateur_film := StringReplace(realisateur_film, #13#10, '');
  173.   realisateur_film := StringReplace(realisateur_film, '   ', '');
  174.   realisateur_film := Trim(realisateur_film);
  175.   realisateur_film := AnsiLowerCase(realisateur_film);
  176.   realisateur_film := AnsiMixedCase(realisateur_film, ' ');
  177.   realisateur_film := AnsiMixedCase(realisateur_film, '-');
  178.   repeat
  179.  
  180.   //cherche les acteurs
  181.   BeginPos := Pos('acteurs:', Line);
  182.   Delete(Line, 1, BeginPos+9);
  183.   EndPos := Pos('<br>',Line)-1;
  184.   acteurs_film := Copy(Line, 1, EndPos );
  185.   HTMLdecode(acteurs_film);
  186.   acteurs_film := StringReplace(acteurs_film, #13#10, '');
  187.   acteurs_film := StringReplace(acteurs_film, '   ', '');
  188.   acteurs_film := Trim(acteurs_film);
  189.   acteurs_film := AnsiLowerCase(acteurs_film);
  190.   acteurs_film := AnsiMixedCase(acteurs_film, ' ');
  191.   acteurs_film := AnsiMixedCase(acteurs_film, '-');
  192.   BeginPos := Pos('acteurs:', Line);
  193.   if BeginPos = 0 then liste_acteurs := liste_acteurs + acteurs_film;
  194.   if BeginPos <> 0 then liste_acteurs := liste_acteurs + acteurs_film + ', ';
  195.   until BeginPos = 0;
  196.  
  197.     //quel type de public
  198.     BeginPos := Pos('public:', Line);
  199.     Delete(Line, 1, BeginPos+6);
  200.     EndPos := Pos('<br>',Line)-1;
  201.     public_film := Copy(Line, 1, EndPos );
  202.     HTMLdecode(public_film);
  203.     public_film := StringReplace(public_film, #13#10, '');
  204.     public_film := StringReplace(public_film, '   ', '');
  205.     public_film := Trim(public_film);
  206.     public_film := AnsiLowerCase(public_film);
  207.     public_film := AnsiMixedCase(public_film, ' ');
  208.     public_film := AnsiMixedCase(public_film, '-');
  209.  
  210. //chargement des jaquettes
  211.       BeginPos := Pos('<img src="../base/imgpromo/', Line);
  212.     if BeginPos <> 0 then
  213.       begin
  214.         Delete(Line, 1, BeginPos+26);
  215.         EndPos := Pos('">',Line)-1;
  216.         fichier_image := 'http://www.berserkme.com/base/imgpromo/' + Copy(Line, 1, EndPos );
  217.         GetPicture(fichier_image);
  218.       end;
  219.      
  220.     //cherche le format video
  221.   BeginPos := Pos('video:', Line);
  222.   Delete(Line, 1, BeginPos+7);
  223.   EndPos := Pos('<br>',Line)-1;
  224.   video_film := Copy(Line, 1, EndPos );
  225.   HTMLdecode(video_film);
  226.   video_film := StringReplace(video_film, #13#10, '');
  227.   video_film := StringReplace(video_film, '   ', '');
  228.   video_film := Trim(video_film);
  229.   video_film := AnsiLowerCase(video_film);
  230.   video_film := AnsiMixedCase(video_film, ' ');
  231.   video_film := AnsiMixedCase(video_film, '-');
  232.  
  233.       //cherche le format audio
  234.   BeginPos := Pos('audio:', Line);
  235.   Delete(Line, 1, BeginPos+7);
  236.   EndPos := Pos('<br>',Line)-1;
  237.   audio_film := Copy(Line, 1, EndPos );
  238.   HTMLdecode(audio_film);
  239.   audio_film := StringReplace(audio_film, #13#10, '');
  240.   audio_film := StringReplace(audio_film, '   ', '');
  241.   audio_film := Trim(audio_film);
  242.   audio_film := AnsiLowerCase(audio_film);
  243.   audio_film := AnsiMixedCase(audio_film, ' ');
  244.   audio_film := AnsiMixedCase(audio_film, '-');
  245.  
  246.   //charge les rΘsultats dans la fenΩtre
  247.   SetField( fieldTranslatedTitle,titre_film);
  248.   SetField( fieldOriginalTitle,titre_original);
  249.   if titre_original = '' then
  250.   begin
  251.   SetField( fieldOriginalTitle,titre_film);
  252.   end;
  253.   SetField( fieldCategory,categorie_film );
  254.   SetField( fieldDirector,realisateur_film);
  255.   SetField( fieldYear,annee_film);
  256.   SetField( fieldCountry,pays_film);
  257.   //SetField( fieldLength,duree_film);
  258.   SetField( fieldActors,liste_acteurs);
  259.   SetField( fieldDescription,description_film);
  260.   SetField( fieldURL,'http://www.berserkme.com');
  261.   SetField( fieldcomments,public_film);
  262.   SetField( fieldVIDEOFORMAT,video_film);
  263.   SetField( fieldAUDIOFORMAT,audio_film);
  264.   //DisplayResults;
  265. end;
  266.  
  267.  
  268. begin
  269.   if CheckVersion(3,5,0) then
  270.   begin
  271.     MovieName := GetField(fieldOriginalTitle);
  272.     if MovieName = '' then
  273.       MovieName := GetField(fieldTranslatedTitle);
  274.     if Input('Berserkme avec image', 'Entrez le titre du film :', MovieName) then
  275.     begin
  276.       //remplace les caractΦres accentuΘs
  277.       MovieName:= AnsiLowerCase(MovieName);
  278.       MovieName:= StringReplace(MovieName, 'Θ', 'e');
  279.       MovieName:= StringReplace(MovieName, 'Φ', 'e');
  280.       MovieName:= StringReplace(MovieName, 'α', 'a');
  281.       MovieName:= StringReplace(MovieName, 'τ', 'c');
  282.       MovieName:= StringReplace(MovieName, '∙', 'u');
  283.       MovieName := 'http://www.berserkme.com/amc/question.asp?titre='+ UrlEncode(MovieName);
  284.       AnalyzePage(MovieName);
  285.     end;
  286.   end else
  287.   ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
  288. end.
  289.